package cn.hyatt.auth.event;

import cn.hyatt.auth.entity.SystemMenu;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

/**
 * 系统菜单事件对象
 *
 * @author hyatt
 */
public interface SystemMenuEvent {
    /**
     * 保存事件对象
     */
    @Getter
    @Setter
    @NoArgsConstructor
    @AllArgsConstructor
    class Save {
        @Schema(description = "保存对象")
        private SystemMenu entity;
    }

    /**
     * 更新事件对象
     */
    @Getter
    @Setter
    @NoArgsConstructor
    @AllArgsConstructor
    class Update {

        @Schema(description = "更新前对象")
        private SystemMenu oldEntity;

        @Schema(description = "更新后对象")
        private SystemMenu entity;
    }

    /**
     * 删除事件对象
     */
    @Getter
    @Setter
    @NoArgsConstructor
    @AllArgsConstructor
    class Delete {
        @Schema(description = "删除对象Id")
        private Long id;
    }
}
